A portion of the disclosure recited in the specification contains material which is subject to copyright protection. Specifically, a Microfiche Appendix in accordance with 37 CFR Section 1.96 is included which lists source code instructions for a process by which the present invention is practiced in a computer system. The Appendix includes 4 fiches having 377 frames, or pages, of source code. The copyright owner has no objection to the facsimile reproduction of the specification as filed in the Patent and Trademark Office. Otherwise all copyright rights are reserved.
This invention relates generally to computer graphics processing and more specifically to the creation and display of a three-dimensional environment generated by a computer system using a symbolic map description of the environment downloaded from a network.
The Internet has established itself as a world-wide information resource. It is also growing rapidly as a resource for commerce and entertainment. Essentially, this has been brought about by the development of the World Wide Web (xe2x80x9cWWWxe2x80x9d or simply xe2x80x9cWebxe2x80x9d) which provides presentations of text, images and sound on Web xe2x80x9cpages.xe2x80x9d Not only have Web pages received wide acceptance because of their effectiveness in presenting information, but the simplicity and ease of creating, or xe2x80x9cauthoring,xe2x80x9d Web pages has ensured their widespread use throughout the Internet.
One reason that authoring of Web pages is so easy is that the language used to create a Web page uses simple plain-text words and syntax. Thus, Web page authoring is easy for non-technical designers to understand. Unlike prior languages which allowed powerful control over computer information processing and presentation, authoring a Web page does not require computer programming knowledge. Since the language format is represented as plain-text it can easily be edited in a standard word processor as opposed to a dedicated application or user interface such as a computer-aided design or publishing system. Also, the language is compact and results in very short files that can be quickly downloaded from a xe2x80x9cserver,xe2x80x9d or provider computer, to a user""s xe2x80x9cclientxe2x80x9d computer.
Web pages are written in Hyper-Text Markup Language (HTML). HTML, commonly referred to as xe2x80x9chyper-text,xe2x80x9d allows authors to design web pages by using xe2x80x9ctagsxe2x80x9d to specify the page layout and style. For example, the font size, indentation, number of columns, etc. can be specified for text. Also, graphical effects such as the background pattern and color, placement of images, animations, etc., can be specified. An important feature of hyper-text is that, hyper-links can be defined. A hyper-link allows a Web page to xe2x80x9clinkxe2x80x9d to another page. When a viewer, or user, of a computer system points and clicks on an item in a first Web page a linked, or referenced, second page is displayed in place of the first page. This powerful referencing mechanism allows information to be associated with other information among Web pages located anywhere throughout the entire world.
Another standard that is part of the design of the Web provides for identifying and accessing each page, or other object, by using a unique address called a Uniform Resource Locator (URL). The format of the URL allows any object on any server that is part of the Internet to be accessed by other computers. Not only can Web pages be accessed in this manner, but pictures, animations, movie clips, sounds, etc., can be referenced and displayed within a Web page or by other means through various computer programs executing on a user""s computer.
Each of the above features of the World Wide Web, that of HTML standardization, ease of Web page authoring, hyper-link referencing, quick downloading and universal addressing scheme have served to make the Web useful and popular. xe2x80x9cBrowsingxe2x80x9d of Web pages has been made simple by the popularity of browser programs that display Web pages in a point-and-click interface that is mostly provided by the Web page layout, itself.
However, a shortcoming of today""s Web page-based information is that it is strictly 2-dimensional. A Web page is analogous to a printed page in that text and images are laid out adjacent to each other. Even though computers are capable of detailed 3-dimensional simulation, this type of presentation is virtually nonexistent in Internet applications because of limitations in the speed with which data can be transmitted from a server computer to a client computer. On today""s Web pages only limited ways of performing animations are possible, such as animated xe2x80x9c.gifs,xe2x80x9d server xe2x80x9cpush,xe2x80x9d client xe2x80x9cpullxe2x80x9d and other animation techniques that allow small windows of choppy animation. Other techniques such as MPEG compression and playback, or streaming formats attempt to provide television-like delivery of information. However, all of these approaches result in very small windows of animation that tend to have low frame rates. Further, these delivery methods are very non-interactive. That is, these methods provide little more than a way to insert small snippets of an animated sequence into a Web page. Typically, the animation will play continuously, in a xe2x80x9cloopedxe2x80x9d fashion, or until the user decides to stop the playback.
While a Web page, and the animation methods discussed so far, are adequate for presenting many types of information they are not as effective for certain applications sometimes referred to as a xe2x80x9cfull-immersion,xe2x80x9d or an interactive 3-dimensional simulation. Such technology allows a user to move about at will in a 3-dimensional world, or environment, viewed through the display screen of the computer. A user is able to move around in, look at and interact with objects in the 3-dimensional environment much as they would in the actual physical world. Not only is such a technique able to convey certain types of information, for example, architectural, landscaping, urban planning, etc., but it is more entertaining, and can be more intuitive, than the traditional printed page approach to presenting information on the Web.
A prior approach to providing a 3-dimensional simulated environment on the Web, used a language called virtual reality markup language (VRML). A specification for VRML can be found in xe2x80x9cA BEGINNER""S GUIDE TO VRMLxe2x80x9d at http://home.netscape.com/eng/live3d/howto/vrml_primer_toc.html Although the goal of VRML is to provide a 3-dimensional environment easily created and used by authors and users of the Web, it has failed to gain acceptance because of some major shortcomings.
One shortcoming of VRML is that defining 3-dimensional structures, and placing those structures in a 3-dimensional environment is complex. VRML requires an author to specify objects in terms of shapes such as a cube, sphere, cone and cylinder. Placement of objects is by x, y, z distances. Thus, not only is a high degree of geometric knowledge and thought required in order create even the simplest 3-dimensional world, but piecing together shapes in order to make an object requires experience with computer aided modeling techniques. Because of the format that VRML uses, it is not possible to look at a VRML page description and immediately understand the layout of the 3-dimensional world.
Another shortcoming of the VRML approach is that complex custom viewers are necessary to interpret the VRML page in order to generate the screen displays simulating the 3-dimensional world. Because of the complexity of the VRML language, VRML viewers tend to be large and require processing and memory resources of the computer system on which they execute. Although at the time of initial excitement of VRML many such viewers were promised, few actually materialized. As the World-Wide Web stands today there is a near-complete lack of 3-dimensional simulation in Web pages.
Thus, it is desirable to provide a 3-dimensional simulation system for the Internet (or any bandwidth limited network) and specifically the World-Wide Web. Such a system should provide easy authoring of 3-dimensional worlds. The system should also provide for fast and efficient rendering of scenes in the 3-dimensional world so that the 3-dimensional viewers can be easily integrated into popular browsers. The 3-dimensional world should be able to be described simply so that it will be understood by the large number of present Web designers. The 3-dimensional world description should not require complex editing applications and the resulting description files should be compact so that the time to download a 3-dimensional world definition from an Internet server into a user""s computer system will be short. The generation of views, or frames, should operate quickly and efficiently on a user""s computer system, adapting to the processing and memory resources available to produce a better 3D experience. Finally, the system should achieve the goals of enhancing the information, entertainment and commerce uses of the Internet.
The present invention provides a system for generating a three-dimensional environment by using a symbolic map to define the type and location of objects in the environment. The symbolic map is a plain-text file that uses a single text character to represent a square area, or an object on a square area, in the environment. For example, the letter xe2x80x9ctxe2x80x9d is used to represent a tree; the symbol xe2x80x9c.xe2x80x9d is used to represent a blank space; the symbol xe2x80x9c#xe2x80x9d is used to represent a wall (if facing a side of it), a basic block (for making walls or structures) or the floor or ground (if walked upon).
The placement of the single-character text symbols in a rectangular grid defines a level of the environment. Levels can be stacked. A viewer program is used to generate an interactive three-dimensional world based on the symbolic map. The use of a text based symbolic map provides a simple and accessible format for three-dimensional modeling. The invention uses a versatile file organization and file formats that allow polygon objects to be defined, assigned to character symbols and given characteristics. A basic set of objects is predefined so that a designer can immediately begin creating visually rich and interesting environments without having to painstakingly define objects.
Some characteristics that can be assigned to objects include specifying texture maps for parts of an object (such as for the leaves on a tree) to give a custom look to the object. The texture maps can be from a predefined library or can be custom texture files that the designer (or another party) provides. Image and audio information can be associated with an object. This allows a pop-up sign or menu to come into display when a user moving about in the environment comes within close range of an object. A sound can also be played so that when an object is approached it emits a sound. Objects can be given a hyperlink property so that the user is xe2x80x9cteleportedxe2x80x9d from a first spot to a second spot. The second spot can be an entirely separate symbolic map file located anywhere on the Internet. This is true for each component of the system, including the block files and media files which can be loaded from anywhere on the Internet, as needed.
Another way to join spots, rather than by teleporting, is to specify a placement (e.g., North, South, East, West, or by coordinate values, etc.) for additional Spot files. When the user gets within a predetermined radius of the edge of the current Spot, the additional Spot at the user""s area is loaded so that the user can move seamlessly from the first Spot to an additional Spot as if the two Spots were one.
Standard features of HTML pages can be used within the environment. An example is an imagemap, which can exist at a block location or be associated as a pop-up image, or sprite. The imagemap can be clickable to hyperlink the user to another spot, or to a standard web page. The invention provides for block objects placed adjacent to one another to fuse into a different object. An example is when two ramp objects are placed together and result in a single ramp of shallower slope when viewed within the environment.
Items such as light sources can be placed and realistically illuminate adjacent objects within the environment. Provision can be made for objects to be given motion instructions for moving about the environment. Traditional Internet media formats (e.g., bitmap images, movies) are supported within the environment. A multi-faceted sprite image is supported which displays a different image depending on the user""s viewing angle to the object. This can give the impression that the user is walking around an object and is seeing different sides of the object. Other objects, such as a simple banner sprite, always face the user so that, for example, it is not necessary for the user to be in a particular position to read necessary text information.
The specific selection of file formats, viewer processes, environment features and user interface provides a simple, efficient and versatile system for modeling and using three-dimensional environments over a bandwidth limited network such as the Internet.
One aspect of the invention provides a viewer program executing on a computer system for generating a display of a three-dimensional environment. The computer system includes a processor coupled to a display and a primary storage device. The computer system is coupled to a secondary storage device via a network. The viewer program includes the following components: a download process to download, via the network, a symbolic map stored on the secondary storage device; a symbol parsing process to parse the symbolic map for one or more symbols; a media retrieval process for retrieving prestored media information associated with the symbols from the primary storage device; and a rendering process for rendering a display of a three-dimensional world based on the media information.